﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FittyWars.BordUtils
{
    public abstract class Creature : Element
    {
        #region Properties
        public float Hp { get; set; }
        public float FullHp { get; set; }
        public int Xp { get; set; }
        public int Level { get; set; }
        public float Speed { get; set; }
        public float MaxSpeed { get; set; }
        public float Sight { get; set; }
        public float Direction { get; set; }
        #endregion

        #region Constants
        public const float c_baseHP = 10;
        public const float c_baseSpeed = 0.25f;
        public const float c_baseSight = 10;
        public const float c_price = 10;
        #endregion

        public Creature():base()
        {
            this.EleType = ElementType.Moving;
            this.Hp = this.FullHp = c_baseHP;
            this.MaxSpeed = c_baseSpeed;
            this.Sight = c_baseSight;
            this.Xp = 0;
            this.Level = 0;
            this.Direction = 0;
        }

        #region Public methods
        public abstract void Think(List<Element> nearElements);
        #endregion

    }
}
